package com.qture.Demo;

/**
 * @Package: com.qture.Demo
 * @ClassName: AnonymousInnerClassExercise
 * @Author: xiaoBao
 * @CreateTime: 2022-04-25 9:16
 * @Description:匿名内部类实践
 */
public class AnonymousInnerClassExercise01 {

    public static void main(String[] args) {
        /*
            1. 有一个铃声接口Bell，里面有个ring方法。(右图)
            2. 有一个手机类Cellphone，具有闹钟功能alarmClock，参数是Bell类型(右图)
            3. 测试手机类的闹钟功能，通过匿名内部类(对象)作为参数，打印:懒猪起床了
            4. 再传入另一个匿名内部类(对象)，打印:小伙伴上课了
        */
        callPhone callPhone = new callPhone();
        callPhone.alarmClock(new Bell() {
            @Override
            public void ring() {
                System.out.println("懒猪起床了");
            }
        });

        callPhone.alarmClock(new Bell() {
            @Override
            public void ring() {
                System.out.println("小伙伴上课了");
            }
        });
    }
}


// 铃声
interface Bell {
    void ring();
}

class callPhone {
    void alarmClock(Bell bell){ // 形参是接口类型
        bell.ring();
    }
}